package cn.jiedanba.cacert.model;

import java.io.Serializable;
import java.util.Date;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 证书表
 * 
 * @author
 */

@Data
@Table("tb_cert")
@Accessors(chain = true)
public class Cert implements Serializable {

	@Id(keyType = KeyType.Generator, value = "snowflake")
	private String id;

	/**
	 * 颁发者ID
	 */

	private String rootId;

	/**
	 * 父ID，加密证书所属哪个签名证书
	 */
	private String parentId;

	/**
	 * 模板id
	 */
	private String templateId;

	/**
	 * 证书名称
	 */
	private String certName;

	/**
	 * 证书类型
	 */
	private Integer certType;

	/**
	 * 证书序列号
	 */
	private String serialNumber;

	/**
	 * 使用者证书主题
	 */
	private String subjectDn;

	/**
	 * 证书签名算法名称
	 */
	private String sigAlgName;

	/**
	 * 签名算法OID
	 */
	private String sigAlgOid;

	/**
	 * 公钥长度
	 */
	private Integer publicKeySize;

	/**
	 * 证书生效时间
	 */

	private Date notBefore;

	/**
	 * 证书到期时间
	 */

	private Date notAfter;

	/**
	 * 证书吊销时间
	 */

	private Date revokeDate;

	/**
	 * 证书状态：NORMAL：正常 REVOKE：注销 EXPIRE：到期
	 */
	private String status;

	/**
	 * 创建时间
	 */

	private Date createDate;

	/**
	 * 更新时间
	 */

	private Date updateDate;

	private static final long serialVersionUID = 1L;

}